<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      const obj = {
        name: "小谢",
        age: 18,
      };
      /* 
        Object.defineProperty(obj,xxx,{})
        - 主要是对一个已经存在的对象中的属性进行修改
      */

      //修改obj的name属性的特性 不能同时指定存储器或值或属性
      Object.defineProperty(obj, "name", {
        value: "阿彪",
        writable: false,
        enumerable: false,
        configurable: false,
      });
      //getter函数和setter函数(存取器属性)
      Object.defineProperty(obj, "age", {
        //当我读取值的时候 就会调用get方法
        get() {
          console.log("值被读取了");
          return 18;
        },
        //当我修改值的时候就会调用set方法
        set(newValue) {
          //newValue 是新设置的值
          console.log("值更新了", newValue);
        },
      });
      obj.age++;
    </script>
  </body>
</html>
